The Management Component Transport Protocol (MCTP) is a protocol for intercommunication among intelligent devices within a platform management subsystem in a computer system using one or more buses. MCTP is independent of the underlying bus physical layer properties, as well as the data-link layer messaging used on the bus.
The MCTP defines a bus as an interconnect between platform components that share a common physical layer address space. A bus may be made up of multiple segments. A bus segment is a portion of a bus that is electrically separated from other segments that form a bus, but still shares a common physical address space with other segments.
The physical and data-link layer methods for MCTP communication across a given common medium are defined by companion “transport binding” specifications, such as, for example, MCTP over PCI Express® Vendor Defined Messaging (PCI Express® will hereafter be defined by the PCI Express® Base Specification, Revision 1.0a, Apr. 15, 2003). MCTP has been designed to carry multiple types of manageability-related traffic across the common medium.
Common MCTP subsystem devices include one or more Management Devices, each of which is typically implemented using a microcontroller and accessed through a messaging protocol. Another common MCTP subsystem device is a Management Controller, which is a microcontroller or processor that aggregates management parameters from one or more Management Devices and makes access to those parameters available to local or remote software, or to other Management Controllers. A Management Controller also may interpret and process management-related data, and initiate management-related actions on one or more Management Devices. The microcontroller or processor that serves as a Management Controller can also incorporate the functions of a Management Device.
The MCTP can provide efficient communications between many different MCTP subsystem devices, such as communication between a management controller and a management device, between a two or more different management controllers, as well as between management controllers and general computer system components such as system firmware or network controllers.
MCTP also provides support for multiple standard interconnect protocols such as the PCI Express® protocol, as mentioned above, using Vendor Defined Messages (VDM), the System Management Bus (SMBus), Inter-Integrated Circuit (I2C), and Universal Serial Bus (USB), among others.
MCTP data packets can be transferred between MCTP devices, such as management controllers and management devices. To transfer data between devices using the MCTP, endpoints are defined, where each endpoint is the function within a device that terminates the communication protocol of MCTP and handles MCTP Control commands. MCTP uses a logical address called the endpoint ID (EID) for addressing and routing MCTP packets to and from endpoints. An EID includes the entire logical device address that is utilized on the bus the device is coupled to. For example, in PCI Express®, the logical device addressed by a request has an EID that is a combination of a bus number, device number, and function number that can uniquely identify the logical device.
An MCTP bus must have a Bus Owner, which is a device responsible for supporting device discovery as well as assigning an endpoint identification (EID) address to each MCTP Management Device and MCTP Management Controller. For MCTP over PCI Express®, the Bus Owner function is required by MCTP to be accessed by having MCTP Packets routed to and from the VDM message routing for the PCI Express® Root Complex. Having the Root Complex device directly incorporate the Bus Owner functions requires the Root Complex to have a fairly large amount of additional logic. Additionally, this logic may need to change if new functions are required.